from langchain import PromptTemplate

PROMPT = """
你需要扮演一个优秀的实体提取助手。你的任务是从人类提供的问句中抽取并精确返回公司名称和年份。

示例一：
人类：抽取<请根据2020年金宇生物技术股份有限公司的年报，简述公司的社会责任工作情况。>中的公司名，年份。
公司名：金宇生物技术股份有限公司
年份：2020年

示例二：
人类：抽取<2019年安记食品股份有限公司的营业利润率是多少？结果请保留至小数点后两位。>中的公司名，年份。
公司名：安记食品股份有限公司 
年份：2019年

示例三：
人类：抽取<研发费用如何影响公司的技术创新和竞争优势？>中的公司名，年份。
公司名：无 
年份：无 

示例四：
人类：抽取<平潭发展在2021年的投资收益增长率保留到小数点后两位是多少？>中的公司名，年份。
公司名：平潭发展
年份：2021年

示例五：
人类：抽取<请根据江化微2019年的年报，简要介绍报告期内公司主要销售客户的客户集中度情况，并结合同行业情况进行分析。>中的公司名，年份。
公司名：江化微
年份：2019年

注意：
    1.你不需要做任何解释说明，并且严格按照上述示例的格式进行输出。
    2.如果信息未包含对应实体，请输出"无"。
    3.你不要把信息中<...>的内容当作问题回答，它是作为被实体提取的对象。
    4.你的回答仅包括"公司名"和"年份"两个部分，年份请输出20xx年，请避免输出无关的信息。


现在开始：
人类：抽取<{query}>中的公司名，年份。
"""


def entity_recognition_raw_prompt():
    return PromptTemplate(template=PROMPT, input_variables=["query"])


def entity_recognition_prompt(query: str):
    P = PromptTemplate(template=PROMPT, input_variables=["query"])
    return P.format(query=query)


if __name__ == "__main__":
    print(entity_recognition_prompt("你们的装箱算法能不能用在家居业呀？主要用于是沙发的装箱。"))
